#coding:utf-8

'''
本程序用于查询MD5等算法的破解
利用的是互联网各大公开的库
'''

from plugin import *               #导入执行的类
from plugin import crackList       #执行函数的列表
import sys
from multiprocessing import Process    #并行执行类

__metaclass__=type #新式类

def __proFunc(carckName,data):
  exec("print "+carckName+'.getAnswer("'+data+'")')  #动态执行代码
  
def md5Search(data=None):
  procRecord=[]             #线程列表
  for crack in crackList:
    p=Process(target = __proFunc, args = (crack,data))  #多线程执行
    p.start()                  #多线程开始
    procRecord.append(p)
    
  for p in procRecord:
    p.join()                        #这里阻塞
  
if __name__=='__main__':
  if len(sys.argv)<2:
    print "No data to get"
  else:
    md5Search(sys.argv[1])